package com.ruoyi.iot.domain;

import java.io.Serializable;
import java.util.List;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

/**
 * 通道，事件标识等
 */
@Data
public class Channel  implements Serializable {

    private static final long serialVersionUID = 1L;
    private Long id;

    @NotNull(message = "产品ID不能为空")
    private Long productId;

    private String productKey;

    @NotBlank(message = "通道名称不能为空")
    private String name;

    /**
    * 通道标识key，类似mqtttopic
    * 创建后，只能删除，不能修改,只能是字符串，不能包含特殊字符
    */
    @NotBlank(message = "通道标识不能为空")
    private String key;


    /**
     * 0：上行通道
     * 1：下行通道
     */
    //private int type;


    /**
    * 0：同步
    * 1：异步
    */
    private int callType;

    /**
    * 0: 不需要对方回复响应
    * 1：需要对方回复响应
    */
    private int ack;

    /**
     * 乐观锁版本号
     */
    private Long  version;

    // 不存储数据库
    List<Property> properties;
}